/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;

/**
 *
 * @author JONATAS
 */
@Entity
public class Cliente implements Serializable {

    @Id
    private ClientePK cliente_id;
    private String nomeCompleto;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataNascimento;
    private String logradouro;
    private String complemento;
    private int numero;
    private String bairro;
    private int cep;
    @ManyToOne
    private LocalizaCidade cidade;
    private int status; // 0 - inativo, 1 - ativo
    private String telefoneContato;
    private String outrasInformacoes;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataCadastro;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataDesativa;
    private String usuarioDesativa;

    public Cliente() {
        this.cliente_id = new ClientePK();
    }

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public int getCep() {
        return cep;
    }

    public void setCep(int cep) {
        this.cep = cep;
    }

    public ClientePK getCliente_id() {
        return cliente_id;
    }

    public void setCliente_id(ClientePK cliente_id) {
        this.cliente_id = cliente_id;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public LocalizaCidade getCidade() {
        return cidade;
    }

    public void setCidade(LocalizaCidade cidade) {
        this.cidade = cidade;
    }

    public String getComplemento() {
        return complemento;
    }

    public void setComplemento(String complemento) {
        this.complemento = complemento;
    }

    public String getCpf_cnpj() {
        return cliente_id.getCpf_cnpj();
    }

    public void setCpf_cnpj(String cpf_cnpj) {
        this.cliente_id.setCpf_cnpj(cpf_cnpj);
    }

    public Date getDataCadastro() {
        return dataCadastro;
    }

    public void setDataCadastro(Date dataCadastro) {
        this.dataCadastro = dataCadastro;
    }

    public Date getDataDesativa() {
        return dataDesativa;
    }

    public void setDataDesativa(Date dataDesativa) {
        this.dataDesativa = dataDesativa;
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public String getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    public String getNomeCompleto() {
        return nomeCompleto;
    }

    public void setNomeCompleto(String nomeCompleto) {
        this.nomeCompleto = nomeCompleto;
    }

    public String getOutrasInformacoes() {
        return outrasInformacoes;
    }

    public void setOutrasInformacoes(String outrasInformacoes) {
        this.outrasInformacoes = outrasInformacoes;
    }

    public int getStatus() {
        return status;
    }

    public String getStatusDescritivo() {
        switch (status) {
            case 0:
                return ("Inativo");
            case 1:
                return ("Ativo");
            default:
                return ("Erro");
        }
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getTelefoneContato() {
        return telefoneContato;
    }

    public void setTelefoneContato(String telefoneContato) {
        this.telefoneContato = telefoneContato;
    }

    public int getTipoPessoa() {
        return cliente_id.getTipoPessoa();
    }

    public String getTipoPessoaDescricao() {
        if (this.getTipoPessoa() == 0) {
            return ("Física");
        }
        if (this.getTipoPessoa() == 1) {
            return ("Jurídica");
        } else {
            return ("Estrangeiro");
        }
    }

    public void setTipoPessoaByDescricao(String descricao) {
        switch (descricao) {
            case "Física":
                this.setTipoPessoa(0);
                break;
            case "Jurídica":
                this.setTipoPessoa(1);
                break;
            case "Estrangeiro":
                this.setTipoPessoa(2);
                break;
            default:
                System.out.println("Erro");
        }
    }

    public String getEndereco(){
        String endereco;
        endereco = this.logradouro+", "+this.bairro+", "+this.numero;        
        System.out.println("endereco - "+endereco);
        if(!this.complemento.isEmpty()){
            endereco = endereco+", "+this.complemento;   
            System.out.println("endereco+complemento -> "+endereco);
        }
        return endereco+".";
    }
    
    public void setTipoPessoa(int tipoPessoa) {
        this.cliente_id.setTipoPessoa(tipoPessoa);
    }

    public String getUsuarioDesativa() {
        return usuarioDesativa;
    }

    public void setUsuarioDesativa(String usuarioDesativa) {
        this.usuarioDesativa = usuarioDesativa;
    }
}
